Python LevelUP: Data Science by Appsilon

Wprowadzenie do kursu

Piotr Pasza Storożenko@Appsilon

Wstęp

O mnie

Piotr Pasza Storożenko, Machine Learning Engineer

Trochę:

  • MLowiec
  • Fizyk
  • Informatyk
  • Matematyk

więcej na moim blogu pstorozenko.github.io.

Po co jest ten kurs?

Menti time

Po co jest ten kurs?

Przez kilka lat zdobyłem dużo wiedzy na temat pythona, R-a, julia’i, data science, machine learningu, deep learningu, programowania.

Teraz mogę się nią podzielić z Wami!

Temat mojej magisterki:

Competition for attention between online social memes.

Po co jest ten kurs?

Co będzie ciekawe dla kogo

  • Informatycy
    • Wygodne i wydajne narzędzia do pracy z danymi
    • Stworzone dla programistów
  • Matematycy
    • Intuicyjne narzędzia, wspierające powtarzalne eksperymenty
    • Bajecznie proste przedstawianie wyników
  • Elektronicy, mechanicy
    • Doskonała alternatywa dla matlaba
    • Wygodna w użyciu
    • Proste wykresy, animacje
  • Studenci SGH
    • Wspaniała alternatywa dla arkuszy kalkulacyjnych
    • Zestaw darmowych i otwartych narzędzi
    • Nieporównywalnie większa kontrola nad danymi w porównaniu do MS Office, Tableau, PowerBI itp.
  • Fizycy, chemicy, biolodzy
    • Wspaniałe uwolnienie od arkuszy kalkulacyjnych
    • Darmowe oprogramowanie
    • Znacząco łatwiejsze do robienia reprodukowalne wykresy

Data Science

Data Science

Menti time

Czym jest Data Science?

Po co Data Science?

Wyjaśnienie różnych terminów

  • Sztuczna Inteligencja, SI (Artificial Inteligence, AI) – bardzo szeroki umbrella term związany ze wszystkim gdzie komputer/system na podstawie jakichś zasad (algorytmów) podejmuje decyzje.
  • Data Science (DS) – wszystko co związane z danymi, od ich pozyskania przez przetwarzanie po wyświetlenie, wykorzystanie.
  • Uczenie Maszynowe (Machine Learning, ML) – wszystko co związane z tworzeniem (uczeniem/trenowaniem) modeli/systemów w których komputer uczy się na podstawie dostarczonych danych pewnych reguł i zasad.
  • [Głębokie] Sieci Neuronowe ([Deep] Neural Networks, [D]NN) – podzbiór metod uczenia maszynowego wykorzystujący specyficzną klasę modeli - sieci neuronowe. Ich budowa trochę przypomina połączenia między neuronomi biologicznymi, stąd nazwa.

Kim jest Data Scientist?

Osoba która jednocześnie:

  1. Rozmawia z biznesem na temat potrzebnych rozwiązań.
  2. Na podstawie dostarczonych oraz samodzielnie zebranych danych tworzy programistycznie rozwiązania.
  3. Przedstawia rozwiązania biznesowi w czytelny i interesujący sposób.

Biznes mówi o AI, specjaliści raczej o ML

Kim jest Data Scientist?

Kim jest Data Scientist?

Workflow Data Science

Narzędzia Data Science

Plan kursu

  1. Wprowadzenie oraz numpy czyli praca na liczbach
  2. pandas czyli ramki danych
  3. matplotlib i plotly czyli wykresy
  4. scikit-learn czyli wstęp do machine learningu
  5. streamlit czyli dashboardy

Plan kursu

Workflow Data Science x Nasz kurs

Workflow Data Science x Nasz kurs ++

Narzędzia wykorzystywane w kursie

Narzędzia wykorzystywane w kursie

  • Python 3.9/3.10 via Anaconda + liczne paczki
  • Visual Studio Code aka VS Code

Anaconda

Anaconda to standard jeżeli chodzi o zarządzanie wersjami pythona w środowisku data science/machine learningu. Pozwala na uzyskanie konsystentnego środowiska pomiędzy różnymi systemami.

Dlaczego to ważne?

W pracy DSowca bardzo często pracujesz nad kilkoma różnymi projektami jednocześnie. Każdy z projektów może wymagać określonego środowiska, z określonymi wersjami pythona i bibliotek.

To rozwiązanie może być również przydatne przy wielu różnych przedmiotach na studiach!

Anaconda - jak stworzyć środowisko

Po zainstalowaniu anacondy należy sklonować repozytorium kursu, w terminalu przejść do folderu z repo, a następnie wywołać:

conda create -n daftacademy-ds python

zaakceptować instalację środowiska i dalej:

conda activate daftacademy-ds
pip install -r requirements.txt

Jeżeli otrzymujesz komunikat

ERROR: Could not open requirements file: [Errno 2] No such file or directory: 'requirements.txt'

to znaczy, że jesteś w złym folderze.

W razie problemów z polecam zapoznać się z oficjalnym tutorialem do condy.

VSCode - edytor kodu na 2022 rok

Dlaczego VS Code?

  • Wspaniałe wsparcie zarówno do pisania skryptów pythonowych jak i jupyter notebooków.
  • Automatycznie wykrywa środowiska condowe.
  • Wspaniałe wsparcie dla pracy ze zdalnymi maszynami przez SSH (z tego nie będziemy korzystać).
  • Jedno narzędzie do pracy z pythonem, R, julią, javascriptem, typescriptem itp. itd.
  • A ponad to wszystko – VS Code jest darmowy

Co zrobić po zainstalowaniu VS Code?

Zainstaluj rozszerzenia:

Środowisko gotowe do pracy i nauki!

pip vs conda vs pipenv vs …

We need multiple environments on a single machine.

How to live, what to use?

NEVER PLAY WITH DATA SCIENCE ON YOUR DEFAULT SYSTEM’S PYTHON

pip + virtualenv

  1. A basic package manager included in python
  2. Works only for a single version of python
  3. Capable of installing python packages only
  4. Basic package versioning with pip freeze
  5. Pretty fast when doesn’t have to build packages

conda

  1. A package manager provided by Anaconda
  2. Allows for creating different environments for different major (3.9/3.10) and minor (3.10.3/3.10.4) python versions
  3. Is able to install other software than python packages as well (e.g. R or CUDA drivers)
  4. Basic package versioning with conda list --export
  5. Super slow for bigger environments
  6. Packages installed with conda can be shared across environments – lower disk usage (sole PyTorch is ~1.7GB)

pipenv

  1. Looks like pip + virtualenv plus different python versions
  2. Very big focus on environment reproducibility
  3. Super slow for bigger environments

How to live?

The most reliable setup for experimenting is to do:

conda create -n my-env python==3.10.4
conda activate my-env
pip install ...

If you need to install CUDA drivers then do it on environment creation conda create -n my-env python cudatoolkit.

After you install all packages, save in README file python version, e.g.,

Project created with python 3.10.4.

and store installed packages with pip freeze > requirements.txt.

Remember that not every package version is available for every python version. For example Tensorflow 2.10 is supported only in python>=3.10.